1. Technical Field
The present invention relates in general to a method and system for the efficient response to multiple different types of interrupts in a data processing system and in particular to a method and system for the initiation of reversible processing associated with a particular state of a storage subsystem controller in a data processing system prior to receipt of a next interrupt. Still more particularly, the present invention relates to a method and system for the determination of a particular state of a storage subsystem controller associated with an occurrence of a selected type of interrupt.
2. Description of the Related Art
Main frame computer systems generally use auxiliary storage subsystem devices for mass storage of data. In auxiliary storage subsystem devices data is recorded by making a physical change to a medium. Examples of physical storage of data on media are: pitting of aluminum by lasers; grooving of a plastic disk by a needle; and forming magnetic domains on a magnetic surface with an electromagnet. A transducer can then be used to sense the physical qualities of the media and to produce an electrical signal which varies in correspondence to the physical qualities of the media. For a data processing system or compact disk player, the electrical signal is decoded to reproduce binary data.
Direct Access Storage Devices (DASD, pronounced "dasdee") are one type of auxiliary storage subsystem device. In a direct access storage device access time to data is independent of the location of the data in the storage device. Presently, disk drive units are the most common type of DASD. A disk drive unit records data on rotatable disks. The write and read transducers are moved radially inward and outward relative to the disk and the disk is rotated to bring any location of the disk and the appropriate transducer into proximity with one another. A DASD may be contrasted to an indirect access storage device, such as tape drives, where accessibility of data is location dependent.
The fact that access time to a location on a disk is more or less random does not mean that it is instantaneous. During a period when a DASD waits for a spinning disk to move to the correct position for a transducer to access a location, a storage subsystem controller for the DASD can perform other functions. An example of a function performed during a waiting period is the downloading of data from a buffer memory to a channel to a host computer. In large, multiple computer data processing systems, such as those serving airline reservation systems, a large number of direct access storage devices serve several computers. The storage subsystem controller is logically positioned between the DASDs and the host computers. The storage subsystem controller handles connection and disconnection between a particular computer and magnetic disk unit for transfer of data.
The IBM 3990 storage controller is an example of a storage subsystem controller used to control connections between magnetic disk units and host computers. The IBM 3990 Model 3 type controller, which is available from IBM Corporation, can handle up to sixteen channels from host computers and up to sixty-four magnetic storage units. Within the storage subsystem controller are two multipath storage directors and four storage paths, two of which are associated with each multipath storage director. Each multipath storage director may be connected to up to eight incoming channels from host computers, for a total of sixteen channels for the storage controller as a whole. Each multipath storage director is connected to two storage paths, thus functioning as an 8.times.2 switch.
Channels are physical links between the storage subsystem controller and the host computers. Usually, a host computer has two or four channels, half being physically connected to the one multipath storage director and the other half being connected to the other multipath storage director. Each storage path is connected to all of the available magnetic disk units. Upon indication that a disk is ready, the controller can secure any one of a plurality of the channels and storage paths back to a host to establish a data path. It is a feature of the IBM 3990 storage controller that an input/output transaction between a host computer and a magnetic disk unit may be broken into two separate connections, which may be handled along distinct channels and storage paths. A request need not be responded to over the same channel on which it was received. This feature increases throughput through the storage subsystem controller, because during the disconnect period the storage subsystem controller handles other tasks, such as a connection for another computer with another DASD.
In known data processing systems, storage subsystem controllers are required to respond to interrupts generated by multiple sources of real time events such as hosts or DASD'S. A host may request a data path to a DASD in order to store or retrieve data. The storage subsystem controller must perform processing in response to an interrupt generated by the host's request.
Multiple hosts and DASD's may interrupt the storage subsystem controller and request processing at the same time. In this case, the storage subsystem controller must prioritize the interrupts in some way in order to respond to them. Some systems which receive very few different types of interrupts may programmatically test each interrupt received to determine the type. Once the type is determined, a transition occurs to the state associated with the received interrupt.
Other systems utilize a more formal state machine implementation. A central interrupt handier may be utilized to receive all types of interrupts and dispatch the appropriate processing. In these systems, the central interrupt handler converts a received type of interrupt into an index into a state transition table. Based on the type of interrupt received and the current state of the system, the next state is determined utilizing the state transition table. The system then changes to the determined state and processes the received interrupt. Control is then passed back to the central interrupt handier to receive the next interrupt.
It should therefore be apparent that a need exists for a method and system for the initiation of reversible processing by changing the state of a storage subsystem controller to a state associated with a selected interrupt prior to receipt of a next interrupt.